package com.nlecloud.bc.service.contract;

import com.nlecloud.bc.controller.contract.dto.CopyrightDTO;
import com.nlecloud.bc.model.PageResult;
import org.fisco.bcos.sdk.transaction.model.exception.ContractException;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.math.BigInteger;

/**
 * 版权合约操作服务接口声明
 */
public interface ICopyrightContractService {

    /**
     * 新增版权作品信息
     * @param title 标题
     * @param path 文件存储路径
     * @param author 作者
     * @return
     */
    boolean addCopyright(String title,String path,String author) throws IOException;

    /**
     * 查询拥有者的版权作品信息
     * @param userId 用户Id
     * @param index 从第几条数据查询
     * @param size 查询条数
     * @return
     */
    PageResult<CopyrightDTO> listCopyrightByOwnerId(String userId,int index, int size, HttpServletRequest req) throws ContractException;

    /**
     * 查询拥有者的版权作品信息
     * @param status 可转让状态：1 不可转让，2 可转让
     * @param index 从第几条数据查询
     * @param size 查询条数
     * @return
     */
    PageResult<CopyrightDTO> listCopyrightByStatus(int status,int index, int size, HttpServletRequest req) throws ContractException;

    /**
     * 设置版权转让信息
     * @param uuid 版权信息Id
     * @param amount 转让金额
     * @return
     */
    boolean setStatusAndAmount(String uuid, int status, BigInteger amount);
}
